# 匹配边界字符
# ^  表示行首匹配(以指定字符开头)      和在 [^]  中 ^不是一回事
# $  表示行尾匹配 
# ^文本$  表示 完全匹配
import re

# print(re.search("^world","world"))  # <re.Match object; span=(0, 5), match='world'>
# print(re.search("^world","21world"))  # None

# print(re.search("world$","world"))  # <re.Match object; span=(0, 5), match='world'>
# print(re.search("world$","worldif"))  # None

# print(re.search("^world$","world"))  # <re.Match object; span=(0, 5), match='world'>
# print(re.search("^world$","worldworld"))   # None


# 词边界 (了解)
'''
\b: 匹配单词的边界,  是指单词和空格之间的位置.(了解)
\B: 匹配非单词的边界.

'''

# print(re.search(r"google\b","abcgoogle"))  # <re.Match object; span=(3, 9), match='google'>
# print(re.search(r"google\b","abcgoogle123 "))  # None
# print(re.search(r"google\B","abcgoogle123 "))   # <re.Match object; span=(3, 9), match='google'>


# 转义字符  \ 让正则中一些符号失去原有的意义
# \. 表示对正则中的 . 符号进行转义
# print(re.search("goog\.le","goog.le"))


# | 表示或者   正则表达式1 | 正则表达式2  表示只要满足两个正则表达式中的一个即可
print(re.search("ab|23", "kjhabcd"))  # <re.Match object; span=(3, 5), match='ab'>
print(re.search("ab|23", "1235567"))
